// React + TS

// 为children添加类型，children是一个比较特殊的prop，支持多种不同的类型数据额度传入，需要通过一个内置的ReactNode类型来做注解
// 注解之后，children可以使多种类型，包括React.ReactElement、string、number、React.ReactFragment、React.ReactPortal、boolean、null、undefined
type Props = {
  className: string,
  children: React.ReactNode
}
function Button(props: Props) {
  const {className, children} = props
  
  return <button className={className}>{children}</button>
}

function App() {
  
  return (
    <>
      This is App
      <Button className="test">Click me!</Button>
      <Button className="btn"><span>This is span</span></Button>
    </>
  )
}

export default App
